package com.ityedao.递归;

public class BeerCase {
    public static int totalNumber;// 总酒数
    public static int lastBottleNumber;
    public static int lastCoverNumber;
    public static void main(String[] args) {
        // 啤酒问题：啤酒2元1瓶，4个盖子可以换一瓶，2个空瓶可以换一瓶，请问10元可以喝多少瓶？
        buy(10);
        System.out.println("总数：" + totalNumber);
        System.out.println("剩余瓶子数：" + lastBottleNumber);
        System.out.println("剩余盖子数：" + lastCoverNumber);
    }

    public static void buy(int money) {
        // 1、
        int buyNum = money / 2;
        totalNumber += buyNum;

        // 2、把盖子喝瓶子换算成钱继续买
        // 计算本轮总的盖子和瓶子数
        int allBottleNumber = buyNum + lastBottleNumber;
        int allCoverNumber = buyNum + lastCoverNumber;

        int allMoney = 0;

        if (allBottleNumber >= 2){
            allMoney += (allBottleNumber / 2) * 2;
        }
        lastBottleNumber = allBottleNumber % 2;

        if (allCoverNumber >= 4){
            allMoney += (allCoverNumber / 4) * 2;
        }
        lastCoverNumber = allCoverNumber % 4;

        if (allMoney >= 2){
            buy(allMoney);
        }
    }

}
